/*==============================================================*/
/* Database name:  calendarizacion                              */
/* DBMS name:      Microsoft SQL Server 2005                    */
/* Created on:     26/06/2012 11:51:14 p.m.                     */
/*==============================================================*/


drop database calendarizacion
go

/*==============================================================*/
/* Database: calendarizacion                                    */
/*==============================================================*/
create database calendarizacion
if exists (select 1
            from  sysobjects
           where  id = object_id('AULA')
            and   type = 'U')
   drop table AULA
go

use calendarizacion
go

/*==============================================================*/
/* Table: ACCIONES                                              */
/*==============================================================*/
create table ACCIONES (
   IDACCION             tinyint              identity(1,1),
   IDMODULO             tinyint              not null,
   NOMBRE               varchar(35)          null,
   constraint PK_ACCIONES primary key (IDACCION)
)
go

/*==============================================================*/
/* Table: AULA                                                  */
/*==============================================================*/
create table AULA (
   ID_AULA              smallint             identity(1,1),
   ID_EDIFICIO          smallint             null,
   NOMBRE_AULA          char(8)              null,
   CAPACIDAD_AULA       tinyint              null,
   MULTIMEDIA           bit                  null,
   DISPONIBLE           bit                  null,
   constraint PK_AULA primary key (ID_AULA)
)
go

/*==============================================================*/
/* Table: CALENDARIO                                            */
/*==============================================================*/
create table CALENDARIO (
   ID_CALENDARIO        int                  identity(1,1),
   ID_CURSO             smallint             null,
   ID_CATEDRATICO       smallint             null,
   ID_AULA              smallint             null,
   ID_LABORATORIO       smallint             null,
   IDHORARIO            tinyint              null,
   IDCALENADRIOE        smallint             null,
   SECCION              varchar(5)           null,
   REMEDIAL             bit                  null,
   HABILITADO           bit                  null,
   NOMBRECURSO          varchar(60)          null,
   NOMBRECATEDRATICO    varchar(60)          null,
   DIA                  tinyint              null,
   constraint PK_CALENDARIO primary key (ID_CALENDARIO)
)
go

/*==============================================================*/
/* Table: CARGO                                                 */
/*==============================================================*/
create table CARGO (
   IDCARGO              smallint             identity(1,1),
   IDUSUARIO            tinyint              null,
   ID_CARRERA           smallint             null,
   HABILITADO           bit                  null,
   constraint PK_CARGO primary key (IDCARGO)
)
go

/*==============================================================*/
/* Table: CARRERA                                               */
/*==============================================================*/
create table CARRERA (
   ID_CARRERA           smallint             identity(1,1),
   ID_FACULTAD          smallint             null,
   NOMBRE_CARRERA       varchar(50)          null,
   DESCRIPCION          varchar(200)         null,
   HABILITADO           bit                  null,
   constraint PK_CARRERA primary key (ID_CARRERA)
)
go

/*==============================================================*/
/* Table: CATEDRATICO                                           */
/*==============================================================*/
create table CATEDRATICO (
   ID_CATEDRATICO       smallint             identity(1,1),
   ID_PROFESION         smallint             null,
   NOMBRE_CATEDRATICO   varchar(60)          null,
   NUM_TELEFONO         int                  null,
   MAIL                 varchar(65)          null,
   ANO_INGRESO          datetime             null,
   OBSERVACIONES        varchar(250)         null,
   HABILITADO           bit                  null,
   constraint PK_CATEDRATICO primary key (ID_CATEDRATICO)
)
go

/*==============================================================*/
/* Table: CATEGORIA                                             */
/*==============================================================*/
create table CATEGORIA (
   ID_CATEGORIA         smallint             identity(1,1),
   ID_CURSO             smallint             null,
   NOMBRE_CATEGORIA     varchar(50)          null,
   constraint PK_CATEGORIA primary key (ID_CATEGORIA)
)
go

/*==============================================================*/
/* Table: CICLO                                                 */
/*==============================================================*/
create table CICLO (
   ID_CICLO             smallint             identity(1,1),
   NUMERO_PENSUM        smallint             null,
   NOMBRE_CICLO         varchar(40)          null,
   HABILITADO           bit                  null,
   constraint PK_CICLO primary key (ID_CICLO)
)
go

/*==============================================================*/
/* Table: COMPETENCIA                                           */
/*==============================================================*/
create table COMPETENCIA (
   ID_COMPETENCIA       smallint             identity(1,1),
   ID_CATEDRATICO       smallint             null,
   ID_CURSO             smallint             null,
   PONDERACION          tinyint              null,
   VECES_IMPARTICION    tinyint              null,
   OBSERVACIONES        varchar(250)         null,
   constraint PK_COMPETENCIA primary key (ID_COMPETENCIA)
)
go

/*==============================================================*/
/* Table: CURSO                                                 */
/*==============================================================*/
create table CURSO (
   ID_CURSO             smallint             identity(1,1),
   ID_CICLO             smallint             null,
   NOMBRE_CURSO         varchar(50)          null,
   CREDITOS_TEORICOS    tinyint              null,
   CREDITOS_PRACTICOS   tinyint              null,
   CREDITOS_PRERREQUISITO tinyint              null,
   LABORATORIO          bit                  null,
   ESPECIFICO           bit                  null,
   HABILITADO           bit                  null,
   constraint PK_CURSO1 primary key (ID_CURSO)
)
go

/*==============================================================*/
/* Table: EDIFICIO                                              */
/*==============================================================*/
create table EDIFICIO (
   ID_EDIFICIO          smallint             identity(1,1),
   NOMBRE_EDIFICIO      varchar(50)          null,
   NUM_AULAS            smallint             null,
   NUM_LABORATORIOS     tinyint              null,
   DIRECCION_EDIFICIO   varchar(200)         null,
   constraint PK_EDIFICIO primary key (ID_EDIFICIO)
)
go

/*==============================================================*/
/* Table: EDP                                                   */
/*==============================================================*/
create table EDP (
   ID_EDP               smallint             identity(1,1),
   ID_CATEGORIA         smallint             null,
   NOMBRE_EDP           varchar(50)          null,
   CREDITOS_EDP         tinyint              null,
   HABILITADO           bit                  null,
   constraint PK_CURSO primary key (ID_EDP)
)
go

/*==============================================================*/
/* Table: ENCABEZADOCALENARIO                                   */
/*==============================================================*/
create table ENCABEZADOCALENARIO (
   IDCALENADRIOE        smallint             identity(1,1),
   IDUSUARIO            tinyint              null,
   ANIO                 smallint             null,
   CICLOIMPARTIDO       tinyint              null,
   FECHA                smallint             null,
   constraint PK_ENCABEZADOCALENARIO primary key (IDCALENADRIOE)
)
go

/*==============================================================*/
/* Table: FACULTAD                                              */
/*==============================================================*/
create table FACULTAD (
   ID_FACULTAD          smallint             identity(1,1),
   ID_EDIFICIO          smallint             null,
   NOMBRE_FACULTAD      varchar(50)          null,
   NOMBRE_COORDINADOR   varchar(50)          null,
   NUMERO_TELEFONO      int                  null,
   HABILITADO           bit                  null,
   constraint PK_FACULTAD primary key (ID_FACULTAD)
)
go

/*==============================================================*/
/* Table: HORARIO                                               */
/*==============================================================*/
create table HORARIO (
   IDHORARIO            tinyint              identity(1,1),
   HORAINICIO           smallint             null,
   HORAFINAL            smallint             null,
   constraint PK_HORARIO primary key (IDHORARIO)
)
go

/*==============================================================*/
/* Table: HORARIO_AULA                                          */
/*==============================================================*/
create table HORARIO_AULA (
   ID_HRAULA            smallint             identity(1,1),
   ID_AULA              smallint             null,
   IDHORARIO            tinyint              null,
   DIA_AULA             tinyint              null,
   constraint PK_HORARIO_AULA primary key (ID_HRAULA)
)
go

/*==============================================================*/
/* Table: HORARIO_CATEDRATICO                                   */
/*==============================================================*/
create table HORARIO_CATEDRATICO (
   ID_HRCATEDRATICO     smallint             not null,
   ID_CATEDRATICO       smallint             null,
   IDHORARIO            tinyint              null,
   DIA                  tinyint              null,
   constraint PK_HORARIO_CATEDRATICO primary key (ID_HRCATEDRATICO)
)
go

/*==============================================================*/
/* Table: HORARIO_LAB                                           */
/*==============================================================*/
create table HORARIO_LAB (
   IDHORARIOLAB         smallint             identity(1,1),
   ID_LABORATORIO       smallint             null,
   IDHORARIO            tinyint              null,
   ID_HRAULA            int                  null,
   DIA_LAB              tinyint              null,
   constraint PK_HORARIO_LAB primary key (IDHORARIOLAB)
)
go

/*==============================================================*/
/* Table: JORNADA_CARRERA                                       */
/*==============================================================*/
create table JORNADA_CARRERA (
   ID_JORNADA           smallint             not null,
   ID_CARRERA           smallint             null,
   NOMBRE_JORNADA       varchar(20)          null,
   HORA_INICIO          smallint             null,
   HORA_FIN             smallint             null,
   JORNADA_HABILITADA   bit                  null,
   constraint PK_HORARIO_CARRERA primary key (ID_JORNADA)
)
go

/*==============================================================*/
/* Table: LABORATORIO                                           */
/*==============================================================*/
create table LABORATORIO (
   ID_LABORATORIO       smallint             identity(1,1),
   ID_EDIFICIO          smallint             null,
   NOMBRE_LAB           varchar(50)          null,
   CAPACIDAD_LAB        tinyint              null,
   ENCARGADO_LAB        varchar(50)          null,
   DESCRIPCION_LAB      varchar(200)         null,
   DISPONIBLE_LAB       bit                  null,
   constraint PK_LABORATORIO primary key (ID_LABORATORIO)
)
go

/*==============================================================*/
/* Table: MODULOS                                               */
/*==============================================================*/
create table MODULOS (
   IDMODULO             tinyint              identity(1,1),
   NOMBRE               varbinary(30)        null,
   constraint PK_MODULOS primary key (IDMODULO)
)
go

/*==============================================================*/
/* Table: PENSUM                                                */
/*==============================================================*/
create table PENSUM (
   NUMERO_PENSUM        smallint             identity(1,1),
   ID_CARRERA           smallint             null,
   SEDE                 varchar(20)          null,
   NUM_CICLOS           tinyint              null,
   DURACION             tinyint              null,
   HABILITADO           bit                  null,
   FECHAINGRESO         datetime             null,
   constraint PK_PENSUM primary key (NUMERO_PENSUM)
)
go

/*==============================================================*/
/* Table: PERMISOS                                              */
/*==============================================================*/
create table PERMISOS (
   IDPERMISO            smallint             identity(1,1),
   IDUSUARIO            tinyint              null,
   IDMODULO             tinyint              null,
   IDACCION             tinyint              null,
   constraint PK_PERMISOS primary key (IDPERMISO)
)
go

/*==============================================================*/
/* Table: PRERREQUISITOCREDITOS                                 */
/*==============================================================*/
create table PRERREQUISITOCREDITOS (
   ID_CURSO             smallint             null,
   CANTIDADCREDITOS     tinyint              null
)
go

/*==============================================================*/
/* Table: PRERREQUISITOCURSO                                    */
/*==============================================================*/
create table PRERREQUISITOCURSO (
   IDPRERREQUISITOCURSO tinyint              identity(1,1),
   ID_CURSO             smallint             null,
   ID_CURSOP            smallint             null,
   constraint PK_PRERREQUISITOCURSO primary key (IDPRERREQUISITOCURSO)
)
go

/*==============================================================*/
/* Table: PROFESION                                             */
/*==============================================================*/
create table PROFESION (
   ID_PROFESION         smallint             identity(1,1),
   ID_TITULO            smallint             null,
   LUGAR_PROFESION      varchar(50)          null,
   ANO_GRADUACION       smallint             null,
   constraint PK_PROFESION primary key (ID_PROFESION)
)
go

/*==============================================================*/
/* Table: TITULO                                                */
/*==============================================================*/
create table TITULO (
   ID_TITULO            smallint             identity(1,1),
   NOMBRE_TITULO        varchar(75)          null,
   constraint PK_TITULO primary key (ID_TITULO)
)
go

/*==============================================================*/
/* Table: USUARIOS                                              */
/*==============================================================*/
create table USUARIOS (
   IDUSUARIO            tinyint              identity(1,1),
   USERNAME             nvarchar(30)         null,
   NOMBRE               varchar(60)          null,
   TELEFONO             smallint             null,
   PUESTO               varchar(70)          null,
   HABILITADO           bit                  null,
   constraint PK_USUARIOS primary key (IDUSUARIO)
)
go

alter table ACCIONES
   add constraint FK_ACCIONES_REFERENCE_MODULOS foreign key (IDMODULO)
      references MODULOS (IDMODULO)
go

alter table AULA
   add constraint FK_AULA_REFERENCE_EDIFICIO foreign key (ID_EDIFICIO)
      references EDIFICIO (ID_EDIFICIO)
go

alter table CALENDARIO
   add constraint FK_CALENDAR_REFERENCE_CURSO foreign key (ID_CURSO)
      references CURSO (ID_CURSO)
go

alter table CALENDARIO
   add constraint FK_CALENDAR_REFERENCE_CATEDRAT foreign key (ID_CATEDRATICO)
      references CATEDRATICO (ID_CATEDRATICO)
go

alter table CALENDARIO
   add constraint FK_CALENDAR_REFERENCE_AULA foreign key (ID_AULA)
      references AULA (ID_AULA)
go

alter table CALENDARIO
   add constraint FK_CALENDAR_REFERENCE_LABORATO foreign key (ID_LABORATORIO)
      references LABORATORIO (ID_LABORATORIO)
go

alter table CALENDARIO
   add constraint FK_CALENDAR_REFERENCE_HORARIO foreign key (IDHORARIO)
      references HORARIO (IDHORARIO)
go

alter table CALENDARIO
   add constraint FK_CALENDAR_REFERENCE_ENCABEZA foreign key (IDCALENADRIOE)
      references ENCABEZADOCALENARIO (IDCALENADRIOE)
go

alter table CARGO
   add constraint FK_CARGO_REFERENCE_USUARIOS foreign key (IDUSUARIO)
      references USUARIOS (IDUSUARIO)
go

alter table CARGO
   add constraint FK_CARGO_REFERENCE_CARRERA foreign key (ID_CARRERA)
      references CARRERA (ID_CARRERA)
go

alter table CARRERA
   add constraint FK_CARRERA_REFERENCE_FACULTAD foreign key (ID_FACULTAD)
      references FACULTAD (ID_FACULTAD)
go

alter table CATEDRATICO
   add constraint FK_CATEDRAT_REFERENCE_PROFESIO foreign key (ID_PROFESION)
      references PROFESION (ID_PROFESION)
go

alter table CATEGORIA
   add constraint FK_CATEGORI_REFERENCE_CURSO foreign key (ID_CURSO)
      references CURSO (ID_CURSO)
go

alter table CICLO
   add constraint FK_CICLO_REFERENCE_PENSUM foreign key (NUMERO_PENSUM)
      references PENSUM (NUMERO_PENSUM)
go

alter table COMPETENCIA
   add constraint FK_COMPETEN_REFERENCE_CATEDRAT foreign key (ID_CATEDRATICO)
      references CATEDRATICO (ID_CATEDRATICO)
go

alter table COMPETENCIA
   add constraint FK_COMPETEN_REFERENCE_CURSO foreign key (ID_CURSO)
      references CURSO (ID_CURSO)
go

alter table CURSO
   add constraint FK_CURSO_REFERENCE_CICLO foreign key (ID_CICLO)
      references CICLO (ID_CICLO)
go

alter table EDP
   add constraint FK_EDP_REFERENCE_CATEGORI foreign key (ID_CATEGORIA)
      references CATEGORIA (ID_CATEGORIA)
go

alter table ENCABEZADOCALENARIO
   add constraint FK_ENCABEZA_REFERENCE_USUARIOS foreign key (IDUSUARIO)
      references USUARIOS (IDUSUARIO)
go

alter table FACULTAD
   add constraint FK_FACULTAD_REFERENCE_EDIFICIO foreign key (ID_EDIFICIO)
      references EDIFICIO (ID_EDIFICIO)
go

alter table HORARIO_AULA
   add constraint FK_HORARIO__REFERENCE_AULA foreign key (ID_AULA)
      references AULA (ID_AULA)
go

alter table HORARIO_AULA
   add constraint FK_HORARIO__REFERENCE_HORARIOAU foreign key (IDHORARIO)
      references HORARIO (IDHORARIO)
go

alter table HORARIO_CATEDRATICO
   add constraint FK_HORARIO__REFERENCE_HORARIOCAT foreign key (IDHORARIO)
      references HORARIO (IDHORARIO)
go

alter table HORARIO_CATEDRATICO
   add constraint FK_HORARIO__REFERENCE_CATEDRAT foreign key (ID_CATEDRATICO)
      references CATEDRATICO (ID_CATEDRATICO)
go

alter table HORARIO_LAB
   add constraint FK_HORARIO__REFERENCE_LABORATO foreign key (ID_LABORATORIO)
      references LABORATORIO (ID_LABORATORIO)
go

alter table HORARIO_LAB
   add constraint FK_HORARIO__REFERENCE_HORARIOLAB foreign key (IDHORARIO)
      references HORARIO (IDHORARIO)
go

alter table JORNADA_CARRERA
   add constraint FK_JORNADA__REFERENCE_CARRERA foreign key (ID_CARRERA)
      references CARRERA (ID_CARRERA)
go

alter table LABORATORIO
   add constraint FK_LABORATO_REFERENCE_EDIFICIO foreign key (ID_EDIFICIO)
      references EDIFICIO (ID_EDIFICIO)
go

alter table PENSUM
   add constraint FK_PENSUM_REFERENCE_CARRERA foreign key (ID_CARRERA)
      references CARRERA (ID_CARRERA)
go

alter table PERMISOS
   add constraint FK_PERMISOS_REFERENCE_USUARIOS foreign key (IDUSUARIO)
      references USUARIOS (IDUSUARIO)
go

alter table PERMISOS
   add constraint FK_PERMISOS_REFERENCE_MODULOS foreign key (IDMODULO)
      references MODULOS (IDMODULO)
go

alter table PERMISOS
   add constraint FK_PERMISOS_REFERENCE_ACCIONES foreign key (IDACCION)
      references ACCIONES (IDACCION)
go

alter table PRERREQUISITOCREDITOS
   add constraint FK_PRERREQU_REFERENCE_CURSOCRE foreign key (ID_CURSO)
      references CURSO (ID_CURSO)
go

alter table PRERREQUISITOCURSO
   add constraint FK_PRERREQU_REFERENCE_CURSOPRE foreign key (ID_CURSO)
      references CURSO (ID_CURSO)
go

alter table PRERREQUISITOCURSO
   add constraint FK_PRERREQU_REFERENCE_CURSOCU foreign key (ID_CURSOP)
      references CURSO (ID_CURSO)
go

alter table PROFESION
   add constraint FK_PROFESIO_REFERENCE_TITULO foreign key (ID_TITULO)
      references TITULO (ID_TITULO)
go

